From bab0f5a5c1669c8324609efbaaeccc066445d808 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Wed, 5 Jan 2011 21:58:32 +0900 Subject: [PATCH] Fixed GtkIconView keynav Icon View was not initially setting focus on a cell when focus initially comes into the view. Focusing into whatever is the first cell in the cursor item when set_cursor_item is called with a NULL cell fixes this. --- gtk/gtkiconview.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 1d03c03b81..de5889ec78 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -3100,7 +3100,14 @@ gtk_icon_view_set_cursor_item (GtkIconView *icon_view, } icon_view->priv->cursor_item = item; - gtk_cell_area_set_focus_cell (icon_view->priv->cell_area, cursor_cell); + if (cursor_cell) + gtk_cell_area_set_focus_cell (icon_view->priv->cell_area, cursor_cell); + else + { + /* Make sure there is a cell in focus initially */ + if (!gtk_cell_area_get_focus_cell (icon_view->priv->cell_area)) + gtk_cell_area_focus (icon_view->priv->cell_area, GTK_DIR_TAB_FORWARD); + } gtk_icon_view_queue_draw_item (icon_view, item); @@ -3734,6 +3741,7 @@ gtk_icon_view_move_cursor_up_down (GtkIconView *icon_view, direction == GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD); + } gtk_cell_area_set_focus_cell (icon_view->priv->cell_area, cell); @@ -3878,6 +3886,7 @@ gtk_icon_view_move_cursor_left_right (GtkIconView *icon_view, direction == GTK_DIR_LEFT ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD); + } gtk_cell_area_set_focus_cell (icon_view->priv->cell_area, cell); -- 2.30.2